using System;
using System.Collections.Generic;
using System.Text;
using Decav.Geography;

namespace Decav.Gatsb.Web
{
    /// <summary>
    /// A pushpin that is placed on a Gatsb map at a certain coordinate.
    /// </summary>
    [Serializable]
    public class MapPushpin
    {
        public MapPushpin(Guid id, string name, LatLongPoint point)
        {
            if (name == null)
                throw new ArgumentNullException("name");

            _id = id;
            _name = name;
            _point = point;
        }

        private Guid _id;
        private string _name;
        private LatLongPoint _point;
        private string _detailHtml;

        /// <summary>
        /// Gets the points unique identifier.
        /// </summary>
        public Guid Id
        {
            get
            {
                return _id;
            }
        }

        /// <summary>
        /// Gets or sets the HTML used in the detail of the pushpin when hovered over.
        /// </summary>
        public string DetailHtml
        {
            get { return _detailHtml; }
            set { _detailHtml = value; }
        }
	

        /// <summary>
        /// Gets or sets the name of the pushpin.
        /// </summary>
        public string Name
        {
            get
            {
                return _name;
            }
            set
            {
                _name = value;
            }
        }

        /// <summary>
        /// Gets or sets the point that the pushpin should be placed at.
        /// </summary>
        public LatLongPoint Point
        {
            get
            {
                return _point;
            }
            set
            {
                _point = value;
            }
        }
    }
}
